package com.zwg.mode.mvc

import android.os.Bundle
import android.text.TextUtils
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.zwg.mode.R
import com.zwg.mode.R.layout.activity_main

class MVPPLoginActivity : AppCompatActivity(), UserModel.OnDoLoginStateChange {
    lateinit var loginBtn: Button
    lateinit var accountInputBox: EditText
    lateinit var passwordInputBox: EditText
    lateinit var loginTipsText: TextView


    //持有了usermodel  mvc架构
    private val userModel by lazy {
        UserModel()
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(activity_main)
        initView()
        initListener()


    }

    private fun initView() {
        loginBtn = findViewById(R.id.loginBtn)
        accountInputBox = findViewById(R.id.accountInputBox)
        passwordInputBox = findViewById(R.id.passwordInputBox)
        loginTipsText = findViewById(R.id.loginTipsText)

    }

    private fun initListener() {

        loginBtn.setOnClickListener {
            // 登录逻辑
            tologin()
        }
    }

    /**
     * 处理登录逻辑
     */
    private fun tologin() {
        //做登录的逻辑处理
        val accout = accountInputBox.text.toString()
        val password = passwordInputBox.text.toString()

        //检查账号是否正确
        if (TextUtils.isEmpty(accout)) {
            //TODO 提示账号有问题
            return
        }
        //检查密码是否正确
        if (TextUtils.isEmpty(password)) {
            //TODO 密码有问题
            return

        }
        //给密码加盐
        userModel.checkUserState(accout){
            when (it){
                0->{
                    //不可用，已经注册了
                    //TODO 给出提示
                }
                1->{
                    //表示没有注册，可用
                    //进行登录,此操作为异步
                    userModel.doLogin(this,accout,password)
                    //禁止按钮可以点击，不可以点击了，防止重复提交
                    loginBtn.isEnabled = false
                }
            }
        }
    }

    override fun onLoading() {
        loginTipsText.text = "登录中..."
    }

    override fun onLoginSuccess() {
        loginTipsText.text = "登录中成功..."
    }

    override fun onLoginFailed() {
        loginTipsText.text = "登录失败..."
    }
}